--Archivo: banderas.vhdl
--Fecha de creacion: 22/01/2011.
--Ultima fecha de modificacion: 04/02/2011.
--Diseñador: Miguel Peña.
--Diseño: Detector de estado.
--Proposito: Detectar el estado del resultado de la unidad aritmetico logica.

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity banderas is
    Port ( 
	I_i : in std_logic_vector(3 downto 0);
	C_PREV_i : in std_logic;
	C_i : in std_logic;
	S_o : out std_logic_vector(3 downto 0);
	CARRY_o : out  std_logic;
	N_o : out  std_logic;
	OVF_o : out  std_logic;
	Z_o : out  std_logic
	);
end banderas;

architecture behavioral of banderas is
begin
	
	N_o <= I_i(3); --negativo
	OVF_o <= C_PREV_i xor C_i;--OVF
	CARRY_o <= C_i;--acarreo
	Z_o <= not (((I_i(0) or I_i(1)) or I_i(2)) or I_i(3));--Zero
	S_o <= I_i;
	
end behavioral;
